package ar.edu.utn.frba.disenio.aterrizar.estrategia;

import java.util.Collection;

import ar.edu.utn.frba.disenio.aterrizar.excepciones.EstrategiaLugarIncorrectaException;
import ar.edu.utn.frba.disenio.aterrizar.excepciones.NoHayEstrategiasLugarEnEstrategiaLugarFlexibleException;
import ar.edu.utn.frba.disenio.aterrizar.excepciones.NoSePuedeParsearConNingunaEstrategiaLugarException;


public class EstrategiaLugarFlexible extends EstrategiaLugar {

	private Collection<EstrategiaLugar> estrategiasLugar;
	
	public Collection<EstrategiaLugar> getEstrategiasLugar()	{
		return estrategiasLugar;
	}
	
	public void setEstrategiasLugar(Collection<EstrategiaLugar>  estrategias)	{
		this.estrategiasLugar = estrategias;
	}
	
	public EstrategiaLugarFlexible(Collection<EstrategiaLugar>  estrategias){
		this.setEstrategiasLugar(estrategias);
	}
	
	@Override
	public String parsearLugar(String lugar) {
		try {
			for(EstrategiaLugar estrategia: this.getEstrategiasLugar()){
				try{
					this.lugarParseado = estrategia.parsearLugar(lugar);
					return this.lugarParseado;
				}catch(EstrategiaLugarIncorrectaException e){
					continue;
				}
			}
			throw new NoSePuedeParsearConNingunaEstrategiaLugarException();
		}catch(NullPointerException e){
			throw new NoHayEstrategiasLugarEnEstrategiaLugarFlexibleException();
		}
	}

}
